


struct DHCP_DISCOVER{
    unsigned char op;
    unsigned char htype;
    unsigned char hlen;
    unsigned char hops;
    long xid;
    short secs;
    short flag;
    long ciaddr;
    long yiaddr;
    long siaddr;
    long giaddr;
    unsigned char chaddr[16];
    unsigned char sname[64];
    unsigned char file[128];
    unsigned char options[42];
    short end;
};

struct UDP_PACKAGE{
	short src_port;
	short dest_port;
	short lenth;
	short checksum;
	struct DHCP_DISCOVER discover;
};
struct UDP_PERSDO_PACKAGE{
    long src_ip;
    long dest_ip;
    unsigned char zeros;
    unsigned char protocal;
    unsigned char length;
    struct UDP_PACKAGE udp;
};

struct IP_HEADER{
	unsigned char ip_and_headlength;
	unsigned char service_level;
	short length;
	short identify;
	short label_and_offset;
	unsigned char    ttl;
	unsigned char protocal;
	short head_checksum;
	long src_ip;
	long dest_ip;
};
struct IP_PACKAGE{
	struct IP_HEADER header;
	struct UDP_PACKAGE udp;
};

struct MAC_PACKAGE{
	short pre;
	unsigned char dest_mac[6];
	unsigned char src_mac[6];
	//unsigned char type[5];
	short protocal;
	struct IP_PACKAGE ip;
};

